package leetcode_700;

import java.util.List;
import java.util.Stack;

/**
 *@author 周杨
 *ExclusiveTimeOfFunctions_636 方法调用时间的计算 
 *describe:用栈 5%
 *2018年9月24日 上午10:31:11
 */
public class ExclusiveTimeOfFunctions_636 {
	public int[] exclusiveTime(int n, List<String> logs) {
	    int[] res = new int[n];
	    Stack<Integer> stack = new Stack<>();
	    int prevTime = 0;
	    for (String log : logs) {
	        String[] parts = log.split(":");
	        if (!stack.isEmpty()) res[stack.peek()] +=  Integer.parseInt(parts[2]) - prevTime; 
	        prevTime = Integer.parseInt(parts[2]);
	        if (parts[1].equals("start")) stack.push(Integer.parseInt(parts[0]));
	        else {
	            res[stack.pop()]++;
	            prevTime++;
	        }
	    }
	    return res;
	}
}
